package com.hh.entity.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.hh.entity.domain.UserCollection;
import lombok.Data;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.util.Date;

/**
 * com.hh.entity.vo
 *
 * @author hanhui
 * @version 0.0.1
 * @date 2025/7/14
 **/
@Data
public class UserCollectionVO implements Serializable {

    /**
     * 用户收藏ID
     */
    private Long id;

    /**
     * 用户ID
     */
    private Long userId;

    /**
     * 用户信息
     */
    private UserVO user;

    /**
     * 收藏标题
     */
    private String title;

    /**
     * 封面URL
     */
    private String coverUrl;

    /**
     * 创建时间
     */
    private Date createdTime;

    /**
     * 浏览次数
     */
    private Long viewCount;

    /**
     * 点赞次数
     */
    private Long likeCount;

    /**
     * 封装类转对象
     *
     * @param userCollectionVO 用户收藏封装类
     * @return 用户收藏对象
     */
    public static UserCollection voToObj(UserCollectionVO userCollectionVO) {
        if (userCollectionVO == null) {
            return null;
        }
        UserCollection userCollection = new UserCollection();
        BeanUtils.copyProperties(userCollectionVO, userCollection);
        return userCollection;
    }

    /**
     * 对象转封装类
     *
     * @param userCollection 用户收藏对象
     * @return 用户收藏封装类
     */
    public static UserCollectionVO objToVo(UserCollection userCollection) {
        if (userCollection == null) {
            return null;
        }
        UserCollectionVO userCollectionVO = new UserCollectionVO();
        BeanUtils.copyProperties(userCollection, userCollectionVO);
        return userCollectionVO;
    }

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}
